package com.pushtime.service.search;

import com.pushtime.domain.HdfsLog;
import com.pushtime.web.rest.vm.DataVM;
import com.pushtime.web.rest.vm.HdfsVM;

import java.io.FileInputStream;
import java.io.IOException;
import java.net.URI;
import java.util.Optional;

public interface HdfsUploadService {

    /**
     * 创建 HDFS 上传
     *
     * @return 返回保存结果
     */
    HdfsLog createHdfsUpload(HdfsVM hdfsVM);

    /**
     * 执行 下载任务
     *
     * @param hdfsLog 任务详情
     * @return 返回下载结果
     */
    DataVM startUpload(HdfsLog hdfsLog, URI uri, long offset, int length);

    void execute(HdfsLog hdfsLog, byte[] bytes, int length) throws IOException;
    /**
     * 获取下载状态
     *
     * @param id 任务编号
     * @return 返回下载状态信息
     */
    Optional<HdfsLog> getStatus(Long id);
}
